home *** CD-ROM | disk | FTP | other *** search
/ PsL Monthly 1993 December / PSL Monthly Shareware CD-ROM (December 1993).iso / prgmming / dos / basic / pbtool.exe / DAYTER.BAS < prev    next >
BASIC Source File  |  1991-10-15  |  3KB  |  82 lines

  1. '----------------------------------------------------------
  2. '  PROGRAM: DAYTER.BAS         PROGRAMMER: A. KELLETT
  3. '  DATE-WRITTEN: 06/04/91
  4. '  USING POWER BASIC V2.10A
  5. '
  6. '  THIS PROGRAM CALCULATES THE DAY OF THE WEEK AND DISPLAYS
  7. '  THE DATE, DAY, AND TIME.  GREAT FOR YOUR AUTOEXEC.BAT
  8. '  VERSION: 2.10    LAST UPDATED: 10/15/91
  9. '----------------------------------------------------------
  10. VERSION$ = "2.1"
  11. CUR.DATE$ = DATE$:CUR.TIME$ = TIME$
  12. MONTH = VAL(LEFT$(CUR.DATE$,2))
  13. DAY = VAL(MID$(CUR.DATE$,4,2)):DAY.NUM$ = MID$(CUR.DATE$,4,2)
  14. YEAR = VAL(RIGHT$(CUR.DATE$,2)):YEAR$ = RIGHT$(CUR.DATE$,2)
  15. GOSUB GETMONTH
  16. CALL DAYOFWEEK
  17. HOUR = VAL(LEFT$(CUR.TIME$,2))
  18. MINUTE = VAL(MID$(CUR.TIME$,4,2))
  19. SECOND = VAL(RIGHT$(CUR.TIME$,2))
  20. IF HOUR > 12 THEN
  21.    HOUR = HOUR - 12
  22.    MERIDIAN$ = "pm"
  23. ELSE
  24.    MERIDIAN$ = "am"
  25. END IF
  26. '----- PUT LEADING 0'S (IF NEEDED) ON MINUTES AND SECONDS ----
  27. IF MINUTE < 10 THEN
  28.    MINUTE$ = "0" + RIGHT$(STR$(MINUTE),1)
  29. ELSE
  30.    MINUTE$ = STR$(MINUTE)
  31.    IF LEN(MINUTE$) = 3 THEN
  32.       MINUTE$ = RIGHT$(MINUTE$,2)
  33.    END IF
  34. END IF
  35. IF SECOND < 10 THEN
  36.    SECOND$ = "0" + RIGHT$(STR$(SECOND),1)
  37. ELSE
  38.    SECOND$ = STR$(SECOND)
  39.    IF LEN(SECOND$) = 3 THEN
  40.       SECOND$ = RIGHT$(SECOND$,2)
  41.    END IF
  42. END IF
  43.  
  44.  
  45. PRINT "  Today is ";day$;", ";
  46. PRINT MONTH.NAME$;
  47. PRINT USING " \\, 19\\ at ##:\\:\\ \ \  -Dayter v\ \  A.K.";_
  48.    DAY.NUM$,YEAR$,HOUR,MINUTE$,SECOND$,MERIDIAN$,VERSION$
  49. END
  50.  
  51. '
  52. '  To use: define day,month,year as variables holding 2 digit numbers
  53. '          (check validity first) and expect day$ to return the
  54. '          day-name for that specific date.
  55. '--- This subroutine returns the day-name for a specified date -----
  56. SUB DAYOFWEEK
  57.  shared month,day,year,day$
  58.  local c,j,d$()
  59.  dim d$(7):c = 19 ' c=18 for the 1800's
  60.  d$(0)="SUNDAY":d$(1)="Monday":d$(2)="Tuesday":d$(3)="Wednesday"
  61.  d$(4)="Thursday":d$(5)="Friday":d$(6)="Saturday"
  62.  month = month-2:if month<1 then month=month+12:year =year-1
  63.  j=int(2.6*month-.19)+day+year+int(year/4)+int(c/4)-2*c
  64.  j=j-int(j/7)*7
  65.  day$=d$(j)
  66. END SUB
  67. '
  68. '
  69. '---------------------------------------------------------------
  70. GETMONTH:
  71.    DIM MONTH.TABLE$(12)
  72.       MONTH.TABLE$(1) = "January":MONTH.TABLE$(2) = "February"
  73.       MONTH.TABLE$(3) = "March":MONTH.TABLE$(4) = "April"
  74.       MONTH.TABLE$(5) = "May":MONTH.TABLE$(6) = "June"
  75.       MONTH.TABLE$(7) = "July":MONTH.TABLE$(8) = "August"
  76.       MONTH.TABLE$(9) = "September":MONTH.TABLE$(10) = "October"
  77.       MONTH.TABLE$(11) = "November":MONTH.TABLE$(12) = "December"
  78.    MONTH.NAME$ = MONTH.TABLE$(MONTH)
  79.  
  80. RETURN
  81.  
  82.